<?php

namespace app\common\model;

use think\facade\Db;

/**
 * 通知管理的所有操作
 *
 * 时间 ： 2020年4月23日13:06:58
 * 作者 ： 夏立军
 */
class Slideshow
{
    /**
     * 获取轮播图的数量
     * 
     * @return 轮播图的数量
     */
    public function get_slideshow_count()
    {
        return Db::name('slideshow')->count();
    }

    /**
     * 获取轮播图数据
     * 
     * @return 返回所有的轮播图数据
     */
    public function get_slideshow_info()
    {
        return Db::name('slideshow')->order(['update_time'=>'desc'])->select();
    }

    /**
     * 获取轮播图数据 用于前端展示的
     * 
     * @return 返回所有的轮播图数据
     */
    public function get_slideshow_info_from_index()
    {
        return Db::name('slideshow')->where('status',2)->order('update_time','desc')->select();
    }

    /**
     * 通过ID 获取一条具体的轮播图信息
     * 
     * @param $id 轮播图id
     * @return 轮播图的具体信息
     */
    public function get_slideshow_info_by_id(int $id){
        return Db::name('slideshow')->where('id',$id)->find();
    }

    /**
     * 添加一条轮播图的数据
     * 
     * @param $title        标题
     * @param $img_path     图片路径
     * @param $nid          通知资讯ID
     * @param $status       轮播图状态
     */
    public function add_slideshow_info(string $title, string $img_path, int $nid, int $status)
    {
        $data['title'] = $title;
        $data['img_path'] = $img_path;
        $data['nid'] = ($nid == 0) ? null : $nid;
        $data['status'] = $status;
        $data['create_time'] = time();
        try {
            Db::name('slideshow')->save($data);
        } catch (\Throwable $th) {
            return false;
        }
        return true;
    }

    /**
     * 通过ID修改指定的数据
     * 
     * @param $id 指定的ID
     * @param $data 指定的数据
     * @return 是否修改成功
     */
    public function set_slideshow_info_by_id_and_data(int $id,array $data){
        try {
            Db::name('slideshow')->where('id',$id)->save($data);
        } catch (\Throwable $th) {
            return false;
        }
        return true;
    }
    
    /**
     * 通过指定的ID删除一条具体的数据
     * @param $id 指定的ID
     * @return 是否删除成功
     */
    public function del_slideshow_info_by_id(int $id){
        try {
            Db::name('slideshow')->where('id',$id)->delete();
        } catch (\Throwable $th) {
            return false;
        }
        return true;
    }

}
